Lines Matching defs:shmd
278 struct shm_data *shmd = (struct shm_data *)seg->s_data;
286 sptseg = shmd->shm_sptseg;
299 struct anon_map *amp = shmd->shm_amp;
312 if (anon_index + npages > btopr(shmd->shm_amp->size)) {
331 if (shmd->shm_vpage[anon_index] & DISM_PG_LOCKED) {
827 struct shm_data *shmd = (struct shm_data *)seg->s_data;
828 struct seg *sptseg = shmd->shm_sptseg;
881 shmd->shm_softlockcnt > 0)) {
1094 atomic_inc_ulong((ulong_t *)(&(shmd->shm_softlockcnt)));
1154 if (shmd->shm_softlockcnt <= 0) {
1183 struct shm_data *shmd = (struct shm_data *)seg->s_data;
1184 struct seg *sptseg = shmd->shm_sptseg;
1240 if (AS_ISUNMAPWAIT(seg->s_as) && (shmd->shm_softlockcnt > 0)) {
1373 atomic_inc_ulong((ulong_t *)(&(shmd->shm_softlockcnt)));
1411 if (shmd->shm_softlockcnt <= 0) {
1439 struct shm_data *shmd = (struct shm_data *)seg->s_data;
1448 sptseg = shmd->shm_sptseg;
1519 mutex_enter(&shmd->shm_segfree_syncmtx);
1524 ASSERT(shmd->shm_softlockcnt > 0);
1525 atomic_dec_ulong((ulong_t *)(&(shmd->shm_softlockcnt)));
1527 if (shmd->shm_softlockcnt <= 0) {
1541 mutex_exit(&shmd->shm_segfree_syncmtx);
1577 struct shm_data *shmd = (struct shm_data *)seg->s_data;
1591 sptseg = shmd->shm_sptseg;
1650 ASSERT(shmd->shm_softlockcnt >= npages);
1651 atomic_add_long((ulong_t *)(&(shmd->shm_softlockcnt)), -npages);
1652 if (shmd->shm_softlockcnt == 0) {
1675 struct shm_data *shmd;
1682 shmd = kmem_zalloc((sizeof (*shmd)), KM_NOSLEEP);
1683 if (shmd == NULL)
1686 shmd->shm_sptas = shmd_arg->shm_sptas;
1687 shmd->shm_amp = shm_amp;
1688 shmd->shm_sptseg = shmd_arg->shm_sptseg;
1693 mutex_init(&shmd->shm_segfree_syncmtx, NULL, MUTEX_DEFAULT, NULL);
1695 seg->s_data = (void *)shmd;
1697 seg->s_szc = shmd->shm_sptseg->s_szc;
1698 sptd = shmd->shm_sptseg->s_data;
1701 if ((shmd->shm_vpage = kmem_zalloc(btopr(shm_amp->size),
1704 kmem_free(shmd, (sizeof (*shmd)));
1707 shmd->shm_lckpgs = 0;
1712 kmem_free(shmd->shm_vpage,
1724 kmem_free(shmd, (sizeof (*shmd)));
1736 struct shm_data *shmd = (struct shm_data *)seg->s_data;
1741 if (shmd->shm_softlockcnt > 0) {
1758 (void) segspt_shmlockop(seg, raddr, shmd->shm_amp->size, 0, MC_UNLOCK,
1770 struct shm_data *shmd = (struct shm_data *)seg->s_data;
1771 struct anon_map *shm_amp = shmd->shm_amp;
1786 if (shmd->shm_vpage) { /* only for DISM */
1787 kmem_free(shmd->shm_vpage, btopr(shm_amp->size));
1788 shmd->shm_vpage = NULL;
1795 ASSERT(shmd->shm_softlockcnt == 0);
1796 mutex_enter(&shmd->shm_segfree_syncmtx);
1797 mutex_destroy(&shmd->shm_segfree_syncmtx);
1799 kmem_free(shmd, sizeof (*shmd));
1824 struct shm_data *shmd = (struct shm_data *)seg->s_data;
1825 struct seg *sptseg = shmd->shm_sptseg;
1826 struct as *curspt = shmd->shm_sptas;
1892 atomic_add_long((ulong_t *)(&(shmd->shm_softlockcnt)), npages);
1909 &(shmd->shm_softlockcnt)), -npages);
2007 struct shm_data *shmd = (struct shm_data *)seg->s_data;
2008 struct seg *sptseg = shmd->shm_sptseg;
2009 struct as *curspt = shmd->shm_sptas;
2098 atomic_add_long((ulong_t *)(&(shmd->shm_softlockcnt)), npages);
2260 struct shm_data *shmd = (struct shm_data *)seg->s_data;
2261 struct anon_map *amp = shmd->shm_amp;
2263 struct seg *spt_seg = shmd->shm_sptseg;
2271 shmd_new->shm_sptas = shmd->shm_sptas;
2273 shmd_new->shm_sptseg = shmd->shm_sptseg;
2276 ASSERT(seg->s_szc == shmd->shm_sptseg->s_szc);
2287 newseg->s_base, shmd->shm_sptas->a_hat, SEGSPTADDR,
2296 shmd->shm_sptas->a_hat, SEGSPTADDR, seg->s_size,
2306 struct shm_data *shmd = (struct shm_data *)seg->s_data;
2307 struct spt_data *sptd = (struct spt_data *)shmd->shm_sptseg->s_data;
2483 struct shm_data *shmd = seg->s_data;
2484 struct spt_data *sptd = shmd->shm_sptseg->s_data;
2524 if (!(shmd->shm_vpage[anon_index] & DISM_PG_LOCKED)) {
2548 shmd->shm_lckpgs++;
2549 shmd->shm_vpage[anon_index] |= DISM_PG_LOCKED;
2570 struct shm_data *shmd = seg->s_data;
2571 struct spt_data *sptd = shmd->shm_sptseg->s_data;
2585 if (shmd->shm_vpage[anon_index] & DISM_PG_LOCKED) {
2613 shmd->shm_vpage[anon_index] &= ~DISM_PG_LOCKED;
2615 shmd->shm_lckpgs--;
2643 struct shm_data *shmd = seg->s_data;
2644 struct seg *sptseg = shmd->shm_sptseg;
2671 if (an_idx + npages > btopr(shmd->shm_amp->size)) {
2757 if (shmd->shm_lckpgs == 0) {
2786 struct shm_data *shmd = (struct shm_data *)seg->s_data;
2787 struct spt_data *sptd = (struct spt_data *)shmd->shm_sptseg->s_data;
2815 struct shm_data *shmd = (struct shm_data *)seg->s_data;
2816 struct spt_data *sptd = (struct spt_data *)shmd->shm_sptseg->s_data;
2832 struct shm_data *shmd = (struct shm_data *)seg->s_data;
2833 struct spt_data *sptd = (struct spt_data *)shmd->shm_sptseg->s_data;
2852 struct shm_data *shmd = (struct shm_data *)seg->s_data;
2853 struct spt_data *sptd = (struct spt_data *)shmd->shm_sptseg->s_data;
2896 atomic_inc_ulong((ulong_t *)(&(shmd->shm_softlockcnt)));
2919 atomic_dec_ulong((ulong_t *)(&(shmd->shm_softlockcnt)));
2920 if (shmd->shm_softlockcnt <= 0) {
2942 struct seg *sptseg = shmd->shm_sptseg;
2948 share_size = page_get_pagesize(shmd->shm_sptseg->s_szc);
2953 amp = shmd->shm_amp;
2987 if (shmd->shm_softlockcnt > 0)
3016 struct shm_data *shmd = (struct shm_data *)seg->s_data;
3019 struct anon_map *amp = shmd->shm_amp;
3020 struct spt_data *sptd = shmd->shm_sptseg->s_data;
3021 struct seg *sptseg = shmd->shm_sptseg;