/illumos-gate/usr/src/uts/common/vm/ |
H A D | hat.h | 58 * in <vm/hat_xxx.h>. The hat layer manages the address 63 struct hat; 86 * One time hat initialization 91 * Notify hat of a system dump 98 * struct hat *hat_alloc(as) 99 * allocated a hat structure for as. 101 * void hat_free_start(hat) 102 * informs hat layer process has finished executing but as has not 105 * void hat_free_end(hat) 106 * informs hat laye [all...] |
H A D | seg_kpm.c | 46 * See also hat layer for more information about the hat_kpm* routines. 65 #include <vm/hat.h> 103 faultcode_t segkpm_fault(struct hat *hat, struct seg *seg, caddr_t addr, 210 segkpm_fault(struct hat *hat, struct seg *seg, caddr_t addr, size_t len, argument 217 return (hat_kpm_fault(hat, addr)); 302 segkpm_fault(struct hat *hat, struct seg *seg, caddr_t addr, size_t len, argument
|
H A D | Makefile | 31 HDRS= anon.h as.h faultcode.h vpm.h hat.h kpm.h page.h pvn.h rm.h seg.h \
|
H A D | seg_kp.h | 156 faultcode_t segkp_fault(struct hat *hat, struct seg *seg, caddr_t addr,
|
H A D | seg_kpm.h | 105 extern faultcode_t segkpm_fault(struct hat *, struct seg *, caddr_t,
|
H A D | as.h | 49 #include <vm/hat.h> 100 * The following fields are protected by the hat layer lock: 112 struct hat *a_hat; /* hat structure */ 270 faultcode_t as_fault(struct hat *hat, struct as *as, caddr_t addr, size_t size,
|
H A D | vm_rm.c | 52 #include <vm/hat.h>
|
H A D | seg_kp.c | 72 #include <vm/hat.h> 92 static int segkp_unlock(struct hat *hat, struct seg *seg, caddr_t vaddr, 94 static int segkp_load(struct hat *hat, struct seg *seg, caddr_t vaddr, 930 struct hat *hat, 969 if ((err = segkp_load(hat, seg, vaddr, len, kpd, KPD_LOCKED))) { 1001 err = segkp_load(hat, seg, vaddr, len, kpd, kpd->kp_flags); 1028 err = segkp_unlock(hat, se 929 segkp_fault( struct hat *hat, struct seg *seg, caddr_t vaddr, size_t len, enum fault_type type, enum seg_rw rw) argument 1087 segkp_load( struct hat *hat, struct seg *seg, caddr_t vaddr, size_t len, struct segkp_data *kpd, uint_t flags) argument 1172 segkp_unlock( struct hat *hat, struct seg *seg, caddr_t vaddr, size_t len, struct segkp_data *kpd, uint_t flags) argument [all...] |
/illumos-gate/usr/src/uts/i86pc/vm/ |
H A D | htable.c | 53 #include <vm/hat.h> 120 * instead of putting them in a hat's htable cache. 359 ht->ht_hat = NULL; /* no longer tied to a hat */ 436 htable_steal_active(hat_t *hat, uint_t cnt, uint_t threshold, argument 445 h = h_start = h_seed++ % hat->hat_num_hash; 449 for (ht = hat->hat_ht_hash[h]; ht; ht = ht->ht_next) { 511 ASSERT(hat->hat_ht_hash[h] == ht); 512 hat->hat_ht_hash[h] = ht->ht_next; 529 if (++h == hat->hat_num_hash) 535 * Move hat t 538 move_victim(hat_t *hat) argument 570 hat_t *hat = kas.a_hat; /* list starts with khat */ local 775 htable_alloc( hat_t *hat, uintptr_t vaddr, level_t level, htable_t *shared) argument 976 hat_t *hat = ht->ht_hat; local 1033 htable_purge_hat(hat_t *hat) argument 1095 hat_t *hat = old->ht_hat; local 1180 hat_t *hat; local 1283 htable_lookup(hat_t *hat, uintptr_t vaddr, level_t level) argument 1327 hat_t *hat = ht->ht_hat; local 1361 htable_create( hat_t *hat, uintptr_t vaddr, level_t level, htable_t *shared) argument 1483 htable_attach( hat_t *hat, uintptr_t base, level_t level, htable_t *parent, pfn_t pfn) argument 1671 htable_walk( struct hat *hat, htable_t **htp, uintptr_t *vaddr, uintptr_t eaddr) argument 1776 htable_getpte( struct hat *hat, uintptr_t vaddr, uint_t *entry, x86pte_t *pte, level_t level) argument 1810 htable_getpage(struct hat *hat, uintptr_t vaddr, uint_t *entry) argument 2103 hat_t *hat = ht->ht_hat; local 2497 hat_t *hat; local [all...] |
H A D | hat_i86.h | 80 * The hat struct exists for each address space. 82 struct hat { struct 91 struct hat *hat_next; 92 struct hat *hat_prev; 101 typedef struct hat hat_t; 103 #define PGCNT_INC(hat, level) \ 104 atomic_inc_ulong(&(hat)->hat_pages_mapped[level]); 105 #define PGCNT_DEC(hat, level) \ 106 atomic_dec_ulong(&(hat)->hat_pages_mapped[level]); 118 * HAT_VICTIM - This is set while a hat i [all...] |
H A D | htable.h | 70 struct hat *ht_hat; /* hat this mapping comes from */ 77 /* never used for kernel hat */ 100 * hat we include the value of hat pointer in the hash function so 104 #define HTABLE_HASH(hat, va, lvl) \ 106 ((uintptr_t)(hat) >> 4)) & ((hat)->hat_num_hash - 1)) 162 * to the virtual address "vaddr" in the "hat" at the given "level" of 169 * routines for this htable, since it's for the kernel hat itsel [all...] |
H A D | hat_i86.c | 36 * Implementation of the interfaces described in <common/vm/hat.h> 89 * Basic parameters for hat operation. 96 * For 32 bit PAE support on i86pc, the kernel hat will use the 1st 4 entries 118 * hat created by hat_alloc(). This means that kernelbase must be: 123 * The hat_kernel_range_ts describe what needs to be copied from kernel hat 124 * to each user hat. 167 * management stuff for hat structures 218 * kmem cache constructor for struct hat 224 hat_t *hat = buf; local 226 mutex_init(&hat 245 hat_t *hat; local 394 hat_free_start(hat_t *hat) argument 414 hat_free_end(hat_t *hat) argument 952 reload_pae32(hat_t *hat, cpu_t *cpu) argument 985 hat_switch(hat_t *hat) argument 1132 hat_swapin(hat_t *hat) argument 1142 hat_swapout(hat_t *hat) argument 1213 hat_get_mapped_size(hat_t *hat) argument 1229 hat_stats_enable(hat_t *hat) argument 1236 hat_stats_disable(hat_t *hat) argument 1304 hat_t *hat = ht->ht_hat; local 1420 hati_load_common( hat_t *hat, uintptr_t va, page_t *pp, uint_t attr, uint_t flags, level_t level, pfn_t pfn) argument 1575 hat_memload( hat_t *hat, caddr_t addr, page_t *pp, uint_t attr, uint_t flags) argument 1617 hat_memload_region(struct hat *hat, caddr_t addr, struct page *pp, uint_t attr, uint_t flags, hat_region_cookie_t rcookie) argument 1627 hat_memload_array( hat_t *hat, caddr_t addr, size_t len, page_t **pages, uint_t attr, uint_t flags) argument 1724 hat_memload_array_region(struct hat *hat, caddr_t addr, size_t len, struct page **pps, uint_t attr, uint_t flags, hat_region_cookie_t rcookie) argument 1762 hat_devload( hat_t *hat, caddr_t addr, size_t len, pfn_t pfn, uint_t attr, int flags) argument 1871 hat_unlock(hat_t *hat, caddr_t addr, size_t len) argument 1911 hat_unlock_region(struct hat *hat, caddr_t addr, size_t len, hat_region_cookie_t rcookie) argument 1926 hat_t *hat = (hat_t *)a1; local 2037 hat_tlb_inval_range(hat_t *hat, uintptr_t va, size_t len) argument 2162 hat_tlb_inval(hat_t *hat, uintptr_t va) argument 2181 hat_t *hat = ht->ht_hat; local 2311 hat_unload(hat_t *hat, caddr_t addr, size_t len, uint_t flags) argument 2344 handle_ranges(hat_t *hat, hat_callback_t *cb, uint_t cnt, range_info_t *range) argument 2374 hat_unload_callback( hat_t *hat, caddr_t addr, size_t len, uint_t flags, hat_callback_t *cb) argument 2469 hat_flush_range(hat_t *hat, caddr_t va, size_t size) argument 2501 hat_sync(hat_t *hat, caddr_t addr, size_t len, uint_t flags) argument 2579 hat_map(hat_t *hat, caddr_t addr, size_t len, uint_t flags) argument 2591 hat_getattr(hat_t *hat, caddr_t addr, uint_t *attr) argument 2632 hat_updateattr(hat_t *hat, caddr_t addr, size_t len, uint_t attr, int what) argument 2735 hat_setattr(hat_t *hat, caddr_t addr, size_t len, uint_t attr) argument 2742 hat_clrattr(hat_t *hat, caddr_t addr, size_t len, uint_t attr) argument 2749 hat_chgattr(hat_t *hat, caddr_t addr, size_t len, uint_t attr) argument 2756 hat_chgprot(hat_t *hat, caddr_t addr, size_t len, uint_t vprot) argument 2768 hat_getpagesize(hat_t *hat, caddr_t addr) argument 2792 hat_getpfnum(hat_t *hat, caddr_t addr) argument 2846 hat_probe(hat_t *hat, caddr_t addr) argument 2880 is_it_dism(hat_t *hat, caddr_t va) argument 2906 hat_share( hat_t *hat, caddr_t addr, hat_t *ism_hat, caddr_t src_addr, size_t len, uint_t ismszc) argument 3102 hat_unshare(hat_t *hat, caddr_t addr, size_t len, uint_t ismszc) argument 3792 hat_softlock( hat_t *hat, caddr_t addr, size_t *len, struct page **page_array, uint_t flags) argument 3848 hat_setup(hat_t *hat, int flags) argument 4012 hat_enter(hat_t *hat) argument 4018 hat_exit(hat_t *hat) argument 4149 hat_join_srd(struct hat *hat, vnode_t *evp) argument 4155 hat_join_region(struct hat *hat, caddr_t r_saddr, size_t r_size, void *r_obj, u_offset_t r_objoff, uchar_t r_perm, uchar_t r_pgszc, hat_rgn_cb_func_t r_cb_function, uint_t flags) argument 4171 hat_leave_region(struct hat *hat, hat_region_cookie_t rcookie, uint_t flags) argument 4178 hat_dup_region(struct hat *hat, hat_region_cookie_t rcookie) argument 4341 hat_kpm_fault(hat_t *hat, caddr_t vaddr) argument 4455 hat_prepare_mapping(hat_t *hat, caddr_t addr, uint64_t *pte_ma) argument 4479 hat_release_mapping(hat_t *hat, caddr_t addr) argument [all...] |
/illumos-gate/usr/src/uts/sun4u/cpu/ |
H A D | us3_common_mmu.c | 47 * and feed back into those two hat variables at hat initialization time, 68 * hat's disable_large_pages and disable_ism_large_pages variables. 69 * Currently the hat's disable_large_pages and disable_ism_large_pages 113 * sfmmu_pgsz[0] and sfmmu_pgsz[1], since these hat variables are used in 246 * sorted from largest to smallest #pages per pagesize in use by the hat code, 256 mmu_fixup_large_pages(struct hat *hat, uint64_t *ttecnt, uint8_t *tmp_pgsz) argument 263 * Don't program 2nd dtlb for kernel and ism hat 265 ASSERT(hat 322 mmu_setup_page_sizes(struct hat *hat, uint64_t *ttecnt, uint8_t *tmp_pgsz) argument 413 mmu_set_ctx_page_sizes(struct hat *hat) argument 570 mmu_init_kernel_pgsz(struct hat *hat) argument [all...] |
H A D | mach_cpu_module.c | 306 mmu_init_kernel_pgsz(struct hat *hat) argument
|
/illumos-gate/usr/src/cmd/mdb/i86pc/modules/unix/ |
H A D | i86mmu.c | 158 static struct hat *khat; /* value of kas.a_hat */ 537 get_pte(hat_t *hat, htable_t *htable, uintptr_t addr) argument 544 uintptr_t ptr = (uintptr_t)hat->hat_vlp_ptes; 566 struct hat *hatp; 567 struct hat hat; local 588 * read the hat and its hash table 590 if (mdb_vread(&hat, sizeof (hat), (uintptr_t)hatp) == -1) { 591 mdb_warn("Couldn't read struct hat\ 720 struct hat hat; local 860 struct hat hat; local 979 struct hat hat; local 1020 hat_t *hat; local [all...] |
/illumos-gate/usr/src/uts/sfmmu/vm/ |
H A D | hat_kdi.c | 30 #include <vm/hat.h>
|
/illumos-gate/usr/src/uts/sparc/os/ |
H A D | ddi_arch.c | 113 * If we had an MMU, this is where you'd program the MMU and hat layer. 146 struct hat *hat, struct seg *seg, caddr_t addr, 158 rdip, hat, seg, addr, dp, pfn, prot, lock)); 145 i_ddi_map_fault(dev_info_t *dip, dev_info_t *rdip, struct hat *hat, struct seg *seg, caddr_t addr, struct devpage *dp, pfn_t pfn, uint_t prot, uint_t lock) argument
|
/illumos-gate/usr/src/uts/i86pc/os/ |
H A D | ppage.c | 36 #include <vm/hat.h>
|
/illumos-gate/usr/src/cmd/make/lib/mksh/ |
H A D | globals.cc | 103 Name hat; variable
|
/illumos-gate/usr/src/uts/common/os/ |
H A D | vm_subr.c | 69 #include <vm/hat.h> 355 struct hat *hat; local 386 hat = as->a_hat; 397 res = hat_softlock(hat, uaddr, &size, &ppp[0], cow ? HAT_COW : 0);
|
/illumos-gate/usr/src/uts/i86xpv/vm/ |
H A D | seg_mf.c | 50 #include <vm/hat.h> 221 segmf_faultpage(struct hat *hat, struct seg *seg, caddr_t addr, argument 257 hat_devload(hat, addr, MMU_PAGESIZE, (pfn_t)0, 275 hat_unload(hat, addr, MMU_PAGESIZE, hat_flags); 300 segmf_softunlock(struct hat *hat, struct seg *seg, caddr_t addr, size_t len) argument 304 hat_unlock(hat, addr, len); 326 segmf_fault_range(struct hat *hat, struc argument 362 segmf_fault(struct hat *hat, struct seg *seg, caddr_t addr, size_t len, enum fault_type type, enum seg_rw rw) argument [all...] |
/illumos-gate/usr/src/uts/sun4u/sys/ |
H A D | cpu_module.h | 104 * cpus with non-fully-associative dtlbs. Page size is stored in hat sfmmu_cext 258 void mmu_init_kernel_pgsz(struct hat *hat);
|
/illumos-gate/usr/src/uts/sun4v/vm/ |
H A D | mach_kpm.c | 27 * Kernel Physical Mapping (segkpm) hat interface routines for sun4v. 31 #include <vm/hat.h> 201 hat_kpm_fault(struct hat *hat, caddr_t vaddr) argument
|
/illumos-gate/usr/src/uts/intel/os/ |
H A D | ddi_arch.c | 148 * If we had an MMU, this is where you'd program the MMU and hat layer. 273 struct hat *hat, struct seg *seg, caddr_t addr, 285 rdip, hat, seg, addr, dp, pfn, prot, lock)); 272 i_ddi_map_fault(dev_info_t *dip, dev_info_t *rdip, struct hat *hat, struct seg *seg, caddr_t addr, struct devpage *dp, pfn_t pfn, uint_t prot, uint_t lock) argument
|
/illumos-gate/usr/src/uts/sun4/io/ |
H A D | rootnex.c | 63 struct hat *hat, struct seg *seg, caddr_t addr, 719 struct hat *hat, struct seg *seg, caddr_t addr, 741 if (hat == NULL) { 744 * a null hat i.e. use the first hat on the 745 * address space hat list which by convention is 746 * the hat of the system MMU. At alternative 750 hat 718 rootnex_map_fault(dev_info_t *dip, dev_info_t *rdip, struct hat *hat, struct seg *seg, caddr_t addr, struct devpage *dp, pfn_t pfn, uint_t prot, uint_t lock) argument [all...] |