/Linux-v5.4/arch/powerpc/include/asm/nohash/ |
D | pgtable.h | 43 static inline int pte_write(pte_t pte) in pte_write() 48 static inline int pte_read(pte_t pte) { return 1; } in pte_read() 49 static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; } in pte_dirty() 50 static inline int pte_special(pte_t pte) { return pte_val(pte) & _PAGE_SPECIAL; } in pte_special() 51 static inline int pte_none(pte_t pte) { return (pte_val(pte) & ~_PTE_NONE_MASK) == 0; } in pte_none() 52 static inline bool pte_hashpte(pte_t pte) { return false; } in pte_hashpte() 53 static inline bool pte_ci(pte_t pte) { return pte_val(pte) & _PAGE_NO_CACHE; } in pte_ci() 54 static inline bool pte_exec(pte_t pte) { return pte_val(pte) & _PAGE_EXEC; } in pte_exec() 62 static inline int pte_protnone(pte_t pte) in pte_protnone() 73 static inline int pte_present(pte_t pte) in pte_present() [all …]
|
/Linux-v5.4/arch/mips/include/asm/ |
D | pgtable.h | 139 # define pte_none(pte) (!(((pte).pte_high) & ~_PAGE_GLOBAL)) argument 141 # define pte_none(pte) (!(((pte).pte_low | (pte).pte_high) & ~_PAGE_GLOBAL)) argument 144 #define pte_present(pte) ((pte).pte_low & _PAGE_PRESENT) argument 145 #define pte_no_exec(pte) ((pte).pte_low & _PAGE_NO_EXEC) argument 147 static inline void set_pte(pte_t *ptep, pte_t pte) 190 #define pte_none(pte) (!(pte_val(pte) & ~_PAGE_GLOBAL)) argument 191 #define pte_present(pte) (pte_val(pte) & _PAGE_PRESENT) argument 192 #define pte_no_exec(pte) (pte_val(pte) & _PAGE_NO_EXEC) argument 277 static inline int pte_write(pte_t pte) { return pte.pte_low & _PAGE_WRITE; } 278 static inline int pte_dirty(pte_t pte) { return pte.pte_low & _PAGE_MODIFIED; } [all …]
|
/Linux-v5.4/arch/arm/include/asm/ |
D | pgtable.h | 53 #define pte_ERROR(pte) __pte_error(__FILE__, __LINE__, pte) argument 198 #define __pte_unmap(pte) do { } while (0) argument 201 #define __pte_unmap(pte) kunmap_atomic(pte) argument 209 #define pte_unmap(pte) __pte_unmap(pte) argument 211 #define pte_pfn(pte) ((pte_val(pte) & PHYS_MASK) >> PAGE_SHIFT) argument 214 #define pte_page(pte) pfn_to_page(pte_pfn(pte)) argument 219 #define pte_isset(pte, val) ((u32)(val) == (val) ? pte_val(pte) & (val) \ argument 221 #define pte_isclear(pte, val) (!(pte_val(pte) & (val))) argument 223 #define pte_none(pte) (!pte_val(pte)) argument 224 #define pte_present(pte) (pte_isset((pte), L_PTE_PRESENT)) argument [all …]
|
/Linux-v5.4/arch/m68k/include/asm/ |
D | mcf_pgtable.h | 159 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) in pte_modify() 172 #define __pte_page(pte) ((unsigned long) (pte_val(pte) & PAGE_MASK)) argument 175 static inline int pte_none(pte_t pte) in pte_none() 180 static inline int pte_present(pte_t pte) in pte_present() 191 #define pte_pagenr(pte) ((__pte_page(pte) - PAGE_OFFSET) >> PAGE_SHIFT) argument 192 #define pte_page(pte) virt_to_page(__pte_page(pte)) argument 221 static inline int pte_read(pte_t pte) in pte_read() 226 static inline int pte_write(pte_t pte) in pte_write() 231 static inline int pte_exec(pte_t pte) in pte_exec() 236 static inline int pte_dirty(pte_t pte) in pte_dirty() [all …]
|
D | sun3_pgtable.h | 105 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) in pte_modify() 118 #define __pte_page(pte) \ argument 123 static inline int pte_none (pte_t pte) { return !pte_val (pte); } in pte_none() 124 static inline int pte_present (pte_t pte) { return pte_val (pte) & SUN3_PAGE_VALID; } in pte_present() 130 #define pte_pfn(pte) (pte_val(pte) & SUN3_PAGE_PGNUM_MASK) argument 134 #define pte_page(pte) virt_to_page(__pte_page(pte)) argument 167 static inline int pte_write(pte_t pte) { return pte_val(pte) & SUN3_PAGE_WRITEABLE; } in pte_write() 168 static inline int pte_dirty(pte_t pte) { return pte_val(pte) & SUN3_PAGE_MODIFIED; } in pte_dirty() 169 static inline int pte_young(pte_t pte) { return pte_val(pte) & SUN3_PAGE_ACCESSED; } in pte_young() 170 static inline int pte_special(pte_t pte) { return 0; } in pte_special() [all …]
|
D | motorola_pgtable.h | 103 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) in pte_modify() 125 #define __pte_page(pte) ((unsigned long)__va(pte_val(pte) & PAGE_MASK)) argument 130 #define pte_none(pte) (!pte_val(pte)) argument 131 #define pte_present(pte) (pte_val(pte) & (_PAGE_PRESENT | _PAGE_PROTNONE)) argument 134 #define pte_page(pte) virt_to_page(__va(pte_val(pte))) argument 135 #define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT) argument 168 static inline int pte_write(pte_t pte) { return !(pte_val(pte) & _PAGE_RONLY); } in pte_write() 169 static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; } in pte_dirty() 170 static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } in pte_young() 171 static inline int pte_special(pte_t pte) { return 0; } in pte_special() [all …]
|
/Linux-v5.4/arch/hexagon/include/asm/ |
D | pgtable.h | 161 #define pte_special(pte) 0 argument 162 #define pte_mkspecial(pte) (pte) argument 166 #define pte_mkhuge(pte) __pte((pte_val(pte) & ~0x3) | HVM_HUGEPAGE_SIZE) argument 175 #define pte_present_exec_user(pte) \ argument 281 static inline int pte_none(pte_t pte) in pte_none() 289 static inline int pte_present(pte_t pte) in pte_present() 301 static inline pte_t pte_mkold(pte_t pte) in pte_mkold() 308 static inline pte_t pte_mkyoung(pte_t pte) in pte_mkyoung() 315 static inline pte_t pte_mkclean(pte_t pte) in pte_mkclean() 322 static inline pte_t pte_mkdirty(pte_t pte) in pte_mkdirty() [all …]
|
/Linux-v5.4/arch/powerpc/include/asm/book3s/32/ |
D | pgtable.h | 21 static inline bool pte_user(pte_t pte) in pte_user() 367 #define pte_unmap(pte) kunmap_atomic(pte) argument 378 #define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) >> 3 }) argument 382 static inline int pte_write(pte_t pte) { return !!(pte_val(pte) & _PAGE_RW);} in pte_write() 383 static inline int pte_read(pte_t pte) { return 1; } in pte_read() 384 static inline int pte_dirty(pte_t pte) { return !!(pte_val(pte) & _PAGE_DIRTY); } in pte_dirty() 385 static inline int pte_young(pte_t pte) { return !!(pte_val(pte) & _PAGE_ACCESSED); } in pte_young() 386 static inline int pte_special(pte_t pte) { return !!(pte_val(pte) & _PAGE_SPECIAL); } in pte_special() 387 static inline int pte_none(pte_t pte) { return (pte_val(pte) & ~_PTE_NONE_MASK) == 0; } in pte_none() 388 static inline bool pte_exec(pte_t pte) { return pte_val(pte) & _PAGE_EXEC; } in pte_exec() [all …]
|
/Linux-v5.4/arch/um/include/asm/ |
D | pgtable.h | 121 static inline int pte_none(pte_t pte) in pte_none() 130 static inline int pte_read(pte_t pte) in pte_read() 136 static inline int pte_exec(pte_t pte){ in pte_exec() 141 static inline int pte_write(pte_t pte) in pte_write() 147 static inline int pte_dirty(pte_t pte) in pte_dirty() 152 static inline int pte_young(pte_t pte) in pte_young() 157 static inline int pte_newpage(pte_t pte) in pte_newpage() 162 static inline int pte_newprot(pte_t pte) in pte_newprot() 167 static inline int pte_special(pte_t pte) in pte_special() 178 static inline pte_t pte_mknewprot(pte_t pte) in pte_mknewprot() [all …]
|
/Linux-v5.4/arch/openrisc/include/asm/ |
D | pgtable.h | 234 static inline int pte_read(pte_t pte) { return pte_val(pte) & _PAGE_READ; } in pte_read() 235 static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITE; } in pte_write() 236 static inline int pte_exec(pte_t pte) { return pte_val(pte) & _PAGE_EXEC; } in pte_exec() 237 static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; } in pte_dirty() 238 static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } in pte_young() 239 static inline int pte_special(pte_t pte) { return 0; } in pte_special() 240 static inline pte_t pte_mkspecial(pte_t pte) { return pte; } in pte_mkspecial() 242 static inline pte_t pte_wrprotect(pte_t pte) in pte_wrprotect() 248 static inline pte_t pte_rdprotect(pte_t pte) in pte_rdprotect() 254 static inline pte_t pte_exprotect(pte_t pte) in pte_exprotect() [all …]
|
D | pgalloc.h | 25 #define pmd_populate_kernel(mm, pmd, pte) \ argument 29 struct page *pte) in pmd_populate() 73 struct page *pte; in pte_alloc_one() local 85 static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) in pte_free_kernel() 90 static inline void pte_free(struct mm_struct *mm, struct page *pte) in pte_free() 96 #define __pte_free_tlb(tlb, pte, addr) \ argument
|
/Linux-v5.4/arch/sparc/include/asm/ |
D | pgtable_64.h | 251 pte_t pte = pfn_pte(page_nr, pgprot); in pfn_pmd() local 259 static inline unsigned long pte_pfn(pte_t pte) in pte_pfn() 280 static inline pte_t pte_modify(pte_t pte, pgprot_t prot) in pte_modify() 341 pte_t pte = __pte(pmd_val(pmd)); in pmd_modify() local 401 static inline pte_t pte_mkhuge(pte_t pte) in pte_mkhuge() 406 static inline bool is_default_hugetlb_pte(pte_t pte) in is_default_hugetlb_pte() 426 pte_t pte = __pte(pmd_val(pmd)); in pmd_mkhuge() local 435 static inline bool is_hugetlb_pte(pte_t pte) in is_hugetlb_pte() 441 static inline pte_t pte_mkdirty(pte_t pte) in pte_mkdirty() 465 static inline pte_t pte_mkclean(pte_t pte) in pte_mkclean() [all …]
|
/Linux-v5.4/arch/nios2/include/asm/ |
D | pgtable.h | 110 static inline int pte_write(pte_t pte) \ in pte_write() 112 static inline int pte_dirty(pte_t pte) \ in pte_dirty() 114 static inline int pte_young(pte_t pte) \ in pte_young() 116 static inline int pte_special(pte_t pte) { return 0; } in pte_special() 129 static inline int pte_none(pte_t pte) in pte_none() 134 static inline int pte_present(pte_t pte) \ in pte_present() 141 static inline pte_t pte_wrprotect(pte_t pte) in pte_wrprotect() 147 static inline pte_t pte_mkclean(pte_t pte) in pte_mkclean() 153 static inline pte_t pte_mkold(pte_t pte) in pte_mkold() 159 static inline pte_t pte_mkwrite(pte_t pte) in pte_mkwrite() [all …]
|
/Linux-v5.4/arch/arm64/include/asm/ |
D | pgtable.h | 50 #define pte_ERROR(pte) __pte_error(__FILE__, __LINE__, pte_val(pte)) argument 57 #define __pte_to_phys(pte) \ argument 61 #define __pte_to_phys(pte) (pte_val(pte) & PTE_ADDR_MASK) argument 65 #define pte_pfn(pte) (__pte_to_phys(pte) >> PAGE_SHIFT) argument 69 #define pte_none(pte) (!pte_val(pte)) argument 71 #define pte_page(pte) (pfn_to_page(pte_pfn(pte))) argument 76 #define pte_present(pte) (!!(pte_val(pte) & (PTE_VALID | PTE_PROT_NONE))) argument 77 #define pte_young(pte) (!!(pte_val(pte) & PTE_AF)) argument 78 #define pte_special(pte) (!!(pte_val(pte) & PTE_SPECIAL)) argument 79 #define pte_write(pte) (!!(pte_val(pte) & PTE_WRITE)) argument [all …]
|
/Linux-v5.4/arch/microblaze/include/asm/ |
D | pgtable.h | 42 #define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) }) argument 85 static inline int pte_special(pte_t pte) { return 0; } in pte_special() 87 static inline pte_t pte_mkspecial(pte_t pte) { return pte; } in pte_mkspecial() 296 #define pte_none(pte) ((pte_val(pte) & ~_PTE_NONE_MASK) == 0) argument 297 #define pte_present(pte) (pte_val(pte) & _PAGE_PRESENT) argument 332 static inline int pte_read(pte_t pte) { return pte_val(pte) & _PAGE_USER; } in pte_read() 333 static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_RW; } in pte_write() 334 static inline int pte_exec(pte_t pte) { return pte_val(pte) & _PAGE_EXEC; } in pte_exec() 335 static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; } in pte_dirty() 336 static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } in pte_young() [all …]
|
/Linux-v5.4/arch/s390/include/asm/ |
D | hugetlb.h | 67 pte_t pte, int dirty) in huge_ptep_set_access_flags() 80 pte_t pte = huge_ptep_get_and_clear(mm, addr, ptep); in huge_ptep_set_wrprotect() local 89 static inline int huge_pte_none(pte_t pte) in huge_pte_none() 94 static inline int huge_pte_write(pte_t pte) in huge_pte_write() 99 static inline int huge_pte_dirty(pte_t pte) in huge_pte_dirty() 104 static inline pte_t huge_pte_mkwrite(pte_t pte) in huge_pte_mkwrite() 109 static inline pte_t huge_pte_mkdirty(pte_t pte) in huge_pte_mkdirty() 114 static inline pte_t huge_pte_wrprotect(pte_t pte) in huge_pte_wrprotect() 119 static inline pte_t huge_pte_modify(pte_t pte, pgprot_t newprot) in huge_pte_modify()
|
/Linux-v5.4/arch/powerpc/include/asm/book3s/64/ |
D | pgtable.h | 349 #define pte_pagesize_index(mm, addr, pte) MMU_PAGE_4K argument 390 static inline int __pte_write(pte_t pte) in __pte_write() 397 static inline bool pte_savedwrite(pte_t pte) in pte_savedwrite() 410 static inline bool pte_savedwrite(pte_t pte) in pte_savedwrite() 416 static inline int pte_write(pte_t pte) in pte_write() 421 static inline int pte_read(pte_t pte) in pte_read() 480 static inline int pte_dirty(pte_t pte) in pte_dirty() 485 static inline int pte_young(pte_t pte) in pte_young() 490 static inline int pte_special(pte_t pte) in pte_special() 495 static inline bool pte_exec(pte_t pte) in pte_exec() [all …]
|
/Linux-v5.4/include/asm-generic/ |
D | hugetlb.h | 10 static inline unsigned long huge_pte_write(pte_t pte) in huge_pte_write() 15 static inline unsigned long huge_pte_dirty(pte_t pte) in huge_pte_dirty() 20 static inline pte_t huge_pte_mkwrite(pte_t pte) in huge_pte_mkwrite() 25 static inline pte_t huge_pte_mkdirty(pte_t pte) in huge_pte_mkdirty() 30 static inline pte_t huge_pte_modify(pte_t pte, pgprot_t newprot) in huge_pte_modify() 54 pte_t *ptep, pte_t pte) in set_huge_pte_at() 77 static inline int huge_pte_none(pte_t pte) in huge_pte_none() 84 static inline pte_t huge_pte_wrprotect(pte_t pte) in huge_pte_wrprotect() 116 pte_t pte, int dirty) in huge_ptep_set_access_flags()
|
/Linux-v5.4/arch/powerpc/kvm/ |
D | book3s_mmu_hpte.c | 56 void kvmppc_mmu_hpte_cache_map(struct kvm_vcpu *vcpu, struct hpte_cache *pte) in kvmppc_mmu_hpte_cache_map() 97 struct hpte_cache *pte = container_of(head, struct hpte_cache, rcu_head); in free_pte_rcu() local 101 static void invalidate_pte(struct kvm_vcpu *vcpu, struct hpte_cache *pte) in invalidate_pte() 135 struct hpte_cache *pte; in kvmppc_mmu_pte_flush_all() local 154 struct hpte_cache *pte; in kvmppc_mmu_pte_flush_page() local 173 struct hpte_cache *pte; in kvmppc_mmu_pte_flush_long() local 216 struct hpte_cache *pte; in kvmppc_mmu_pte_vflush_short() local 237 struct hpte_cache *pte; in kvmppc_mmu_pte_vflush_64k() local 259 struct hpte_cache *pte; in kvmppc_mmu_pte_vflush_long() local 301 struct hpte_cache *pte; in kvmppc_mmu_pte_pflush() local [all …]
|
/Linux-v5.4/arch/csky/include/asm/ |
D | pgtable.h | 49 #define pte_none(pte) (!(pte_val(pte) & ~_PAGE_GLOBAL)) argument 50 #define pte_present(pte) (pte_val(pte) & _PAGE_PRESENT) argument 61 #define pte_unmap(pte) ((void)(pte)) argument 67 #define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) }) argument 113 static inline int pte_special(pte_t pte) { return 0; } in pte_special() 114 static inline pte_t pte_mkspecial(pte_t pte) { return pte; } in pte_mkspecial() 116 static inline void set_pte(pte_t *p, pte_t pte) in set_pte() 173 static inline int pte_read(pte_t pte) in pte_read() 178 static inline int pte_write(pte_t pte) in pte_write() 183 static inline int pte_dirty(pte_t pte) in pte_dirty() [all …]
|
/Linux-v5.4/arch/riscv/include/asm/ |
D | pgtable.h | 179 static inline unsigned long pte_pfn(pte_t pte) in pte_pfn() 202 #define pte_unmap(pte) ((void)(pte)) argument 204 static inline int pte_present(pte_t pte) in pte_present() 209 static inline int pte_none(pte_t pte) in pte_none() 214 static inline int pte_write(pte_t pte) in pte_write() 219 static inline int pte_exec(pte_t pte) in pte_exec() 224 static inline int pte_huge(pte_t pte) in pte_huge() 230 static inline int pte_dirty(pte_t pte) in pte_dirty() 235 static inline int pte_young(pte_t pte) in pte_young() 240 static inline int pte_special(pte_t pte) in pte_special() [all …]
|
/Linux-v5.4/arch/alpha/include/asm/ |
D | pgtable.h | 209 #define pte_pfn(pte) (pte_val(pte) >> 32) argument 210 #define pte_page(pte) pfn_to_page(pte_pfn(pte)) argument 221 { pte_t pte; pte_val(pte) = (PHYS_TWIDDLE(physpfn) << 32) | pgprot_val(pgprot); return pte; } in pfn_pte() local 223 extern inline pte_t pte_modify(pte_t pte, pgprot_t newprot) in pte_modify() 247 extern inline int pte_none(pte_t pte) { return !pte_val(pte); } in pte_none() 248 extern inline int pte_present(pte_t pte) { return pte_val(pte) & _PAGE_VALID; } in pte_present() 268 extern inline int pte_write(pte_t pte) { return !(pte_val(pte) & _PAGE_FOW); } in pte_write() 269 extern inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; } in pte_dirty() 270 extern inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } in pte_young() 271 extern inline int pte_special(pte_t pte) { return 0; } in pte_special() [all …]
|
/Linux-v5.4/arch/sh/include/asm/ |
D | pgtable_64.h | 84 #define pte_unmap(pte) do { } while (0) argument 257 static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; } in pte_dirty() 258 static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } in pte_young() 259 static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITE; } in pte_write() 260 static inline int pte_special(pte_t pte){ return pte_val(pte) & _PAGE_SPECIAL; } in pte_special() 262 static inline pte_t pte_wrprotect(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_WRITE)); r… in pte_wrprotect() 263 static inline pte_t pte_mkclean(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_DIRTY)); ret… in pte_mkclean() 264 static inline pte_t pte_mkold(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_ACCESSED)); re… in pte_mkold() 265 static inline pte_t pte_mkwrite(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) | _PAGE_WRITE)); retu… in pte_mkwrite() 266 static inline pte_t pte_mkdirty(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) | _PAGE_DIRTY)); retu… in pte_mkdirty() [all …]
|
/Linux-v5.4/arch/unicore32/include/asm/ |
D | pgtable.h | 50 #define pte_ERROR(pte) __pte_error(__FILE__, __LINE__, pte_val(pte)) argument 150 #define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT) argument 154 #define pte_none(pte) (!pte_val(pte)) argument 156 #define pte_page(pte) (pfn_to_page(pte_pfn(pte))) argument 162 #define pte_unmap(pte) do { } while (0) argument 164 #define set_pte(ptep, pte) cpu_set_pte(ptep, pte) argument 175 #define pte_present(pte) (pte_val(pte) & PTE_PRESENT) argument 176 #define pte_write(pte) (pte_val(pte) & PTE_WRITE) argument 177 #define pte_dirty(pte) (pte_val(pte) & PTE_DIRTY) argument 178 #define pte_young(pte) (pte_val(pte) & PTE_YOUNG) argument [all …]
|
/Linux-v5.4/arch/xtensa/include/asm/ |
D | pgtable.h | 251 # define pte_none(pte) (pte_val(pte) == (_PAGE_CA_INVALID | _PAGE_USER)) argument 253 # define pte_present(pte) ((pte_val(pte) & _PAGE_CA_MASK) != _PAGE_CA_INVALID) argument 255 # define pte_present(pte) \ argument 267 static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITABLE; } in pte_write() 268 static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; } in pte_dirty() 269 static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } in pte_young() 270 static inline int pte_special(pte_t pte) { return 0; } in pte_special() 272 static inline pte_t pte_wrprotect(pte_t pte) in pte_wrprotect() 274 static inline pte_t pte_mkclean(pte_t pte) in pte_mkclean() 276 static inline pte_t pte_mkold(pte_t pte) in pte_mkold() [all …]
|