Home
last modified time | relevance | path

Searched refs:hat (Results 1 – 25 of 74) sorted by relevance

123

/illumos-gate/usr/src/uts/common/vm/
H A Dhat.h63 struct hat;
132 struct hat *hat_alloc(struct as *);
133 void hat_free_start(struct hat *);
134 void hat_free_end(struct hat *);
135 int hat_dup(struct hat *, struct hat *, caddr_t, size_t, uint_t);
136 void hat_swapin(struct hat *);
137 void hat_swapout(struct hat *);
138 size_t hat_get_mapped_size(struct hat *);
139 int hat_stats_enable(struct hat *);
140 void hat_stats_disable(struct hat *);
[all …]
H A Dseg_kpm.c103 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, in segkpm_fault() argument
217 return (hat_kpm_fault(hat, addr)); in segkpm_fault()
302 segkpm_fault(struct hat *hat, struct seg *seg, caddr_t addr, size_t len, in segkpm_fault() argument
H A Dseg_kp.c92 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,
932 struct hat *hat, in segkp_fault() argument
971 if ((err = segkp_load(hat, seg, vaddr, len, kpd, KPD_LOCKED))) { in segkp_fault()
1003 err = segkp_load(hat, seg, vaddr, len, kpd, kpd->kp_flags); in segkp_fault()
1030 err = segkp_unlock(hat, seg, vaddr, len, kpd, flags); in segkp_fault()
1090 struct hat *hat, in segkp_load() argument
1147 (void) segkp_unlock(hat, seg, vaddr, in segkp_load()
1155 hat_memload(hat, va, pl[0], (PROT_READ|PROT_WRITE), in segkp_load()
1175 struct hat *hat, in segkp_unlock() argument
[all …]
H A Dseg_kp.h154 faultcode_t segkp_fault(struct hat *hat, struct seg *seg, caddr_t addr,
H A Dseg_hole.c34 static faultcode_t seghole_fault(struct hat *, struct seg *, caddr_t, size_t,
160 seghole_fault(struct hat *hat, struct seg *seg, caddr_t addr, size_t len, in seghole_fault() argument
H A Das.h112 struct hat *a_hat; /* hat structure */
272 faultcode_t as_fault(struct hat *hat, struct as *as, caddr_t addr, size_t size,
H A Dseg_map.c75 faultcode_t segmap_fault(struct hat *hat, struct seg *seg, caddr_t addr,
133 static void segmap_unlock(struct hat *hat, struct seg *seg, caddr_t addr,
492 struct hat *hat, in segmap_unlock() argument
527 hat_unlock(hat, addr, P2ROUNDUP(len, PAGESIZE)); in segmap_unlock()
583 struct hat *hat, in segmap_fault() argument
699 segmap_unlock(hat, seg, addr, len, rw, smp); in segmap_fault()
739 ASSERT(hat == kas.a_hat); in segmap_fault()
764 hat_memload(hat, adr, pp, prot, hat_flag); in segmap_fault()
/illumos-gate/usr/src/uts/i86pc/vm/
H A Dhat_i86.c408 hat_t *hat = buf; in hati_constructor() local
410 mutex_init(&hat->hat_mutex, NULL, MUTEX_DEFAULT, NULL); in hati_constructor()
411 bzero(hat->hat_pages_mapped, in hati_constructor()
413 hat->hat_ism_pgcnt = 0; in hati_constructor()
414 hat->hat_stats = 0; in hati_constructor()
415 hat->hat_flags = 0; in hati_constructor()
416 CPUSET_ZERO(hat->hat_cpus); in hati_constructor()
417 hat->hat_htable = NULL; in hati_constructor()
418 hat->hat_ht_hash = NULL; in hati_constructor()
435 hat_list_append(hat_t *hat) in hat_list_append() argument
[all …]
H A Dhtable.c436 htable_steal_active(hat_t *hat, uint_t cnt, uint_t threshold, in htable_steal_active() argument
445 h = h_start = h_seed++ % hat->hat_num_hash; in htable_steal_active()
449 for (ht = hat->hat_ht_hash[h]; ht; ht = ht->ht_next) { in htable_steal_active()
511 ASSERT(hat->hat_ht_hash[h] == ht); in htable_steal_active()
512 hat->hat_ht_hash[h] = ht->ht_next; in htable_steal_active()
529 if (++h == hat->hat_num_hash) in htable_steal_active()
538 move_victim(hat_t *hat) in move_victim() argument
543 if (hat->hat_prev) in move_victim()
544 hat->hat_prev->hat_next = hat->hat_next; in move_victim()
546 kas.a_hat->hat_next = hat->hat_next; in move_victim()
[all …]
H A Dhtable.h70 struct hat *ht_hat; /* hat this mapping comes from */
105 #define HTABLE_HASH(hat, va, lvl) \ argument
107 ((uintptr_t)(hat) >> 4)) & ((hat)->hat_num_hash - 1))
120 struct hat *hci_user_hat; /* CPU specific HAT */
181 extern htable_t *htable_lookup(struct hat *hat, uintptr_t vaddr, level_t level);
182 extern htable_t *htable_create(struct hat *hat, uintptr_t vaddr, level_t level,
193 extern void htable_purge_hat(struct hat *hat);
200 extern htable_t *htable_getpte(struct hat *, uintptr_t, uint_t *, x86pte_t *,
207 extern htable_t *htable_getpage(struct hat *hat, uintptr_t va, uint_t *entry);
224 extern size_t htable_mapped(struct hat *);
[all …]
H A Dhat_i86.h89 struct hat { struct
100 struct hat *hat_next; argument
101 struct hat *hat_prev; argument
110 typedef struct hat hat_t;
112 #define PGCNT_INC(hat, level) \ argument
113 atomic_inc_ulong(&(hat)->hat_pages_mapped[level]);
114 #define PGCNT_DEC(hat, level) \ argument
115 atomic_dec_ulong(&(hat)->hat_pages_mapped[level]);
262 extern void hat_tlb_inval(struct hat *hat, uintptr_t va);
263 extern void hat_switch(struct hat *hat);
/illumos-gate/usr/src/uts/sun4u/cpu/
H A Dus3_common_mmu.c256 mmu_fixup_large_pages(struct hat *hat, uint64_t *ttecnt, uint8_t *tmp_pgsz) in mmu_fixup_large_pages() argument
265 ASSERT(hat->sfmmu_ismhat == 0); in mmu_fixup_large_pages()
266 ASSERT(hat != ksfmmup); in mmu_fixup_large_pages()
269 ASSERT(!SFMMU_TTEFLAGS_ISSET(hat, HAT_32M_FLAG) || in mmu_fixup_large_pages()
270 !SFMMU_TTEFLAGS_ISSET(hat, HAT_256M_FLAG)); in mmu_fixup_large_pages()
271 ASSERT(!SFMMU_TTEFLAGS_ISSET(hat, HAT_256M_FLAG) || in mmu_fixup_large_pages()
272 !SFMMU_TTEFLAGS_ISSET(hat, HAT_32M_FLAG)); in mmu_fixup_large_pages()
273 ASSERT(!SFMMU_FLAGS_ISSET(hat, HAT_32M_ISM) || in mmu_fixup_large_pages()
274 !SFMMU_FLAGS_ISSET(hat, HAT_256M_ISM)); in mmu_fixup_large_pages()
275 ASSERT(!SFMMU_FLAGS_ISSET(hat, HAT_256M_ISM) || in mmu_fixup_large_pages()
[all …]
H A Dopl_olympus.c869 mmu_setup_page_sizes(struct hat *hat, uint64_t *ttecnt, uint8_t *tmp_pgsz) argument
876 ASSERT(hat->sfmmu_ismhat == NULL);
877 ASSERT(hat != ksfmmup);
918 mmu_set_ctx_page_sizes(struct hat *hat) argument
923 ASSERT(sfmmu_hat_lock_held(hat));
927 if (hat->sfmmu_ismhat || hat == ksfmmup)
933 if (hat->sfmmu_scdp != NULL) {
934 new_cext = hat->sfmmu_scdp->scd_sfmmup->sfmmu_cext;
937 pgsz0 = hat->sfmmu_pgsz[0];
938 pgsz1 = hat->sfmmu_pgsz[1];
[all …]
H A Dmach_cpu_module.c306 mmu_init_kernel_pgsz(struct hat *hat) in mmu_init_kernel_pgsz() argument
/illumos-gate/usr/src/cmd/mdb/i86pc/modules/unix/
H A Di86mmu.c164 static struct hat *khat; /* value of kas.a_hat */
519 get_pte(hat_t *hat, htable_t *htable, uintptr_t addr) in get_pte() argument
524 uintptr_t ptr = (uintptr_t)hat->hat_copied_ptes; in get_pte()
543 struct hat *hatp; in do_va2pa()
544 struct hat hat; in do_va2pa() local
567 if (mdb_vread(&hat, sizeof (hat), (uintptr_t)hatp) == -1) { in do_va2pa()
576 if (level == TOP_LEVEL(&hat)) in do_va2pa()
581 for (h = 0; h < hat.hat_num_hash; ++h) { in do_va2pa()
583 (uintptr_t)(hat.hat_ht_hash + h)) == -1) { in do_va2pa()
598 pte = get_pte(&hat, &htable, addr); in do_va2pa()
[all …]
/illumos-gate/usr/src/uts/intel/io/vmm/
H A Dseg_vmm.c60 static faultcode_t segvmm_fault(struct hat *, struct seg *, caddr_t, size_t,
268 segvmm_fault_obj(struct hat *hat, struct seg *seg, uintptr_t va, size_t len) in segvmm_fault_obj() argument
289 hat_devload(hat, (caddr_t)va, PAGESIZE, pfn, uprot, HAT_LOAD); in segvmm_fault_obj()
298 segvmm_fault_space(struct hat *hat, struct seg *seg, uintptr_t va, size_t len) in segvmm_fault_space() argument
324 hat_devload(hat, (caddr_t)va, PAGESIZE, pfn, uprot, HAT_LOAD); in segvmm_fault_space()
332 hat_unload(hat, (caddr_t)va, PAGESIZE, HAT_UNLOAD); in segvmm_fault_space()
345 segvmm_fault(struct hat *hat, struct seg *seg, caddr_t addr, size_t len, in segvmm_fault() argument
373 err = segvmm_fault_obj(hat, seg, (uintptr_t)addr, len); in segvmm_fault()
375 err = segvmm_fault_space(hat, seg, (uintptr_t)addr, len); in segvmm_fault()
/illumos-gate/usr/src/uts/i86xpv/vm/
H A Dseg_mf.c223 segmf_faultpage(struct hat *hat, struct seg *seg, caddr_t addr, in segmf_faultpage() argument
259 hat_devload(hat, addr, MMU_PAGESIZE, (pfn_t)0, in segmf_faultpage()
277 hat_unload(hat, addr, MMU_PAGESIZE, hat_flags); in segmf_faultpage()
302 segmf_softunlock(struct hat *hat, struct seg *seg, caddr_t addr, size_t len) in segmf_softunlock() argument
306 hat_unlock(hat, addr, len); in segmf_softunlock()
328 segmf_fault_range(struct hat *hat, struct seg *seg, caddr_t addr, size_t len, in segmf_fault_range() argument
341 error = segmf_faultpage(hat, seg, a, type, data->prot); in segmf_fault_range()
353 segmf_softunlock(hat, seg, addr, done); in segmf_fault_range()
364 segmf_fault(struct hat *hat, struct seg *seg, caddr_t addr, size_t len, in segmf_fault() argument
/illumos-gate/usr/src/uts/sfmmu/vm/
H A Dhat_sfmmu.c91 #define SFMMU_VALIDATE_HMERID(hat, rid, saddr, len) \ argument
97 ASSERT(SF_RGNMAP_TEST(hat->sfmmu_hmeregion_map, rid)); \
98 ASSERT((hat) != ksfmmup); \
99 _srdp = (hat)->sfmmu_srdp; \
146 #define SFMMU_VALIDATE_HMERID(hat, rid, addr, len) argument
398 static caddr_t sfmmu_hblk_unload(struct hat *, struct hme_blk *, caddr_t,
400 static caddr_t sfmmu_hblk_sync(struct hat *, struct hme_blk *, caddr_t,
411 static void hat_do_memload_array(struct hat *, caddr_t, size_t,
413 static void hat_do_memload(struct hat *, caddr_t, struct page *,
415 static void sfmmu_memload_batchsmall(struct hat *, caddr_t, page_t **,
[all …]
/illumos-gate/usr/src/uts/sparc/os/
H A Dddi_arch.c146 struct hat *hat, struct seg *seg, caddr_t addr, in i_ddi_map_fault() argument
158 rdip, hat, seg, addr, dp, pfn, prot, lock)); in i_ddi_map_fault()
/illumos-gate/usr/src/uts/common/os/
H A Dvm_subr.c343 struct hat *hat; in cow_mapin() local
374 hat = as->a_hat; in cow_mapin()
385 res = hat_softlock(hat, uaddr, &size, &ppp[0], cow ? HAT_COW : 0); in cow_mapin()
/illumos-gate/usr/src/uts/sun4/io/
H A Drootnex.c63 struct hat *hat, struct seg *seg, caddr_t addr,
719 struct hat *hat, struct seg *seg, caddr_t addr, in rootnex_map_fault() argument
741 if (hat == NULL) { in rootnex_map_fault()
750 hat = seg->s_as->a_hat; in rootnex_map_fault()
753 hat_devload(hat, addr, MMU_PAGESIZE, pfn, prot | sdp->hat_attr, in rootnex_map_fault()
/illumos-gate/usr/src/uts/intel/os/
H A Dddi_arch.c271 struct hat *hat, struct seg *seg, caddr_t addr, in i_ddi_map_fault() argument
283 rdip, hat, seg, addr, dp, pfn, prot, lock)); in i_ddi_map_fault()
/illumos-gate/usr/src/uts/common/sys/
H A Ddevops.h201 struct hat *hat, struct seg *seg, caddr_t addr,
326 struct hat *hat, struct seg *seg, caddr_t addr,
H A Dddi_implfuncs.h57 struct hat *hat, struct seg *seg, caddr_t addr,
/illumos-gate/usr/src/uts/sun4u/sys/
H A Dcpu_module.h258 void mmu_init_kernel_pgsz(struct hat *hat);

123