Lines Matching refs:dbp

80 #define	DBLK_RTFU_WORD(dbp)	(*((uint32_t *)&(dbp)->db_ref))  argument
100 static void dblk_lastfree(mblk_t *mp, dblk_t *dbp);
105 static void bcache_dblk_lastfree(mblk_t *mp, dblk_t *dbp);
116 dblk_t *dbp = buf; in dblk_constructor() local
126 if ((dbp->db_mblk = kmem_cache_alloc(mblk_cache, kmflags)) == NULL) in dblk_constructor()
129 dbp->db_base = kmem_alloc(msg_size, kmflags); in dblk_constructor()
130 if (dbp->db_base == NULL) { in dblk_constructor()
131 kmem_cache_free(mblk_cache, dbp->db_mblk); in dblk_constructor()
135 dbp->db_base = (unsigned char *)&dbp[1]; in dblk_constructor()
138 dbp->db_mblk->b_datap = dbp; in dblk_constructor()
139 dbp->db_cache = dblk_cache[index]; in dblk_constructor()
140 dbp->db_lim = dbp->db_base + msg_size; in dblk_constructor()
141 dbp->db_free = dbp->db_lastfree = dblk_lastfree; in dblk_constructor()
142 dbp->db_frtnp = NULL; in dblk_constructor()
143 dbp->db_fthdr = NULL; in dblk_constructor()
144 dbp->db_credp = NULL; in dblk_constructor()
145 dbp->db_cpid = -1; in dblk_constructor()
146 dbp->db_struioflag = 0; in dblk_constructor()
147 dbp->db_struioun.cksum.flags = 0; in dblk_constructor()
155 dblk_t *dbp = buf; in dblk_esb_constructor() local
157 if ((dbp->db_mblk = kmem_cache_alloc(mblk_cache, kmflags)) == NULL) in dblk_esb_constructor()
159 dbp->db_mblk->b_datap = dbp; in dblk_esb_constructor()
160 dbp->db_cache = dblk_esb_cache; in dblk_esb_constructor()
161 dbp->db_fthdr = NULL; in dblk_esb_constructor()
162 dbp->db_credp = NULL; in dblk_esb_constructor()
163 dbp->db_cpid = -1; in dblk_esb_constructor()
164 dbp->db_struioflag = 0; in dblk_esb_constructor()
165 dbp->db_struioun.cksum.flags = 0; in dblk_esb_constructor()
172 dblk_t *dbp = buf; in bcache_dblk_constructor() local
175 if ((dbp->db_mblk = kmem_cache_alloc(mblk_cache, kmflags)) == NULL) in bcache_dblk_constructor()
178 dbp->db_base = kmem_cache_alloc(bcp->buffer_cache, kmflags); in bcache_dblk_constructor()
179 if (dbp->db_base == NULL) { in bcache_dblk_constructor()
180 kmem_cache_free(mblk_cache, dbp->db_mblk); in bcache_dblk_constructor()
184 dbp->db_mblk->b_datap = dbp; in bcache_dblk_constructor()
185 dbp->db_cache = (void *)bcp; in bcache_dblk_constructor()
186 dbp->db_lim = dbp->db_base + bcp->size; in bcache_dblk_constructor()
187 dbp->db_free = dbp->db_lastfree = bcache_dblk_lastfree; in bcache_dblk_constructor()
188 dbp->db_frtnp = NULL; in bcache_dblk_constructor()
189 dbp->db_fthdr = NULL; in bcache_dblk_constructor()
190 dbp->db_credp = NULL; in bcache_dblk_constructor()
191 dbp->db_cpid = -1; in bcache_dblk_constructor()
192 dbp->db_struioflag = 0; in bcache_dblk_constructor()
193 dbp->db_struioun.cksum.flags = 0; in bcache_dblk_constructor()
201 dblk_t *dbp = buf; in dblk_destructor() local
204 ASSERT(dbp->db_mblk->b_datap == dbp); in dblk_destructor()
206 ASSERT(dbp->db_struioflag == 0); in dblk_destructor()
207 ASSERT(dbp->db_struioun.cksum.flags == 0); in dblk_destructor()
210 kmem_free(dbp->db_base, msg_size); in dblk_destructor()
213 kmem_cache_free(mblk_cache, dbp->db_mblk); in dblk_destructor()
219 dblk_t *dbp = buf; in bcache_dblk_destructor() local
222 kmem_cache_free(bcp->buffer_cache, dbp->db_base); in bcache_dblk_destructor()
224 ASSERT(dbp->db_mblk->b_datap == dbp); in bcache_dblk_destructor()
225 ASSERT(dbp->db_struioflag == 0); in bcache_dblk_destructor()
226 ASSERT(dbp->db_struioun.cksum.flags == 0); in bcache_dblk_destructor()
228 kmem_cache_free(mblk_cache, dbp->db_mblk); in bcache_dblk_destructor()
299 dblk_t *dbp; in allocb() local
313 if ((dbp = kmem_cache_alloc(dblk_cache[index], KM_NOSLEEP)) == NULL) { in allocb()
318 mp = dbp->db_mblk; in allocb()
319 DBLK_RTFU_WORD(dbp) = DBLK_RTFU(1, M_DATA, 0, 0); in allocb()
321 mp->b_rptr = mp->b_wptr = dbp->db_base; in allocb()
324 STR_FTALLOC(&dbp->db_fthdr, FTEV_ALLOCB, size); in allocb()
362 dblk_t *dbp = mp->b_datap; in allocb_cred() local
364 crhold(dbp->db_credp = cr); in allocb_cred()
365 dbp->db_cpid = cpid; in allocb_cred()
377 dblk_t *dbp = mp->b_datap; in allocb_cred_wait() local
379 crhold(dbp->db_credp = cr); in allocb_cred_wait()
380 dbp->db_cpid = cpid; in allocb_cred_wait()
398 dblk_t *dbp = mp->b_datap; in msg_getcred() local
400 cr = dbp->db_credp; in msg_getcred()
406 *cpidp = dbp->db_cpid; in msg_getcred()
433 dblk_t *dbp = mp->b_datap; in msg_extractcred() local
435 cr = dbp->db_credp; in msg_extractcred()
440 ASSERT(dbp->db_ref == 1); in msg_extractcred()
441 dbp->db_credp = NULL; in msg_extractcred()
443 *cpidp = dbp->db_cpid; in msg_extractcred()
456 dblk_t *dbp = mp->b_datap; in freeb() local
458 ASSERT(dbp->db_ref > 0); in freeb()
462 STR_FTEVENT_MBLK(mp, caller(), FTEV_FREEB, dbp->db_ref); in freeb()
464 dbp->db_free(mp, dbp); in freeb()
472 dblk_t *dbp = mp->b_datap; in freemsg() local
475 ASSERT(dbp->db_ref > 0); in freemsg()
478 STR_FTEVENT_MBLK(mp, caller(), FTEV_FREEB, dbp->db_ref); in freemsg()
480 dbp->db_free(mp, dbp); in freemsg()
536 dblk_lastfree(mblk_t *mp, dblk_t *dbp) in dblk_lastfree() argument
538 ASSERT(dbp->db_mblk == mp); in dblk_lastfree()
539 if (dbp->db_fthdr != NULL) in dblk_lastfree()
540 str_ftfree(dbp); in dblk_lastfree()
543 if (dbp->db_credp != NULL) { in dblk_lastfree()
544 crfree(dbp->db_credp); in dblk_lastfree()
545 dbp->db_credp = NULL; in dblk_lastfree()
547 dbp->db_cpid = -1; in dblk_lastfree()
550 dbp->db_struioflag = 0; in dblk_lastfree()
551 dbp->db_struioun.cksum.flags = 0; in dblk_lastfree()
554 dbp->db_flags &= ~(DBLK_COOKED | DBLK_UIOA); in dblk_lastfree()
556 kmem_cache_free(dbp->db_cache, dbp); in dblk_lastfree()
560 dblk_decref(mblk_t *mp, dblk_t *dbp) in dblk_decref() argument
562 if (dbp->db_ref != 1) { in dblk_decref()
563 uint32_t rtfu = atomic_add_32_nv(&DBLK_RTFU_WORD(dbp), in dblk_decref()
579 dbp->db_mblk = mp; in dblk_decref()
580 dbp->db_free = dbp->db_lastfree; in dblk_decref()
581 dbp->db_lastfree(mp, dbp); in dblk_decref()
587 dblk_t *dbp = mp->b_datap; in dupb() local
597 new_mp->b_datap = dbp; in dupb()
601 STR_FTEVENT_MBLK(mp, caller(), FTEV_DUPB, dbp->db_ref); in dupb()
603 dbp->db_free = dblk_decref; in dupb()
605 ASSERT(dbp->db_ref > 0); in dupb()
606 oldrtfu = DBLK_RTFU_WORD(dbp); in dupb()
616 } while (atomic_cas_32(&DBLK_RTFU_WORD(dbp), oldrtfu, newrtfu) != in dupb()
638 dblk_t *dbp; in gesballoc() local
643 if ((dbp = kmem_cache_alloc(dblk_esb_cache, kmflags)) == NULL) { in gesballoc()
648 mp = dbp->db_mblk; in gesballoc()
649 dbp->db_base = base; in gesballoc()
650 dbp->db_lim = base + size; in gesballoc()
651 dbp->db_free = dbp->db_lastfree = lastfree; in gesballoc()
652 dbp->db_frtnp = frp; in gesballoc()
653 DBLK_RTFU_WORD(dbp) = db_rtfu; in gesballoc()
665 bcache_dblk_lastfree(mblk_t *mp, dblk_t *dbp) in bcache_dblk_lastfree() argument
667 bcache_t *bcp = dbp->db_cache; in bcache_dblk_lastfree()
669 ASSERT(dbp->db_mblk == mp); in bcache_dblk_lastfree()
670 if (dbp->db_fthdr != NULL) in bcache_dblk_lastfree()
671 str_ftfree(dbp); in bcache_dblk_lastfree()
674 if (dbp->db_credp != NULL) { in bcache_dblk_lastfree()
675 crfree(dbp->db_credp); in bcache_dblk_lastfree()
676 dbp->db_credp = NULL; in bcache_dblk_lastfree()
678 dbp->db_cpid = -1; in bcache_dblk_lastfree()
679 dbp->db_struioflag = 0; in bcache_dblk_lastfree()
680 dbp->db_struioun.cksum.flags = 0; in bcache_dblk_lastfree()
683 kmem_cache_free(bcp->dblk_cache, dbp); in bcache_dblk_lastfree()
748 dblk_t *dbp; in bcache_allocb() local
759 if ((dbp = kmem_cache_alloc(bcp->dblk_cache, KM_NOSLEEP)) == NULL) { in bcache_allocb()
766 ASSERT(((uintptr_t)(dbp->db_base) & (bcp->align - 1)) == 0); in bcache_allocb()
768 mp = dbp->db_mblk; in bcache_allocb()
769 DBLK_RTFU_WORD(dbp) = DBLK_RTFU(1, M_DATA, 0, 0); in bcache_allocb()
771 mp->b_rptr = mp->b_wptr = dbp->db_base; in bcache_allocb()
774 STR_FTALLOC(&dbp->db_fthdr, FTEV_BCALLOCB, bcp->size); in bcache_allocb()
782 dblk_lastfree_oversize(mblk_t *mp, dblk_t *dbp) in dblk_lastfree_oversize() argument
784 ASSERT(dbp->db_mblk == mp); in dblk_lastfree_oversize()
785 if (dbp->db_fthdr != NULL) in dblk_lastfree_oversize()
786 str_ftfree(dbp); in dblk_lastfree_oversize()
789 if (dbp->db_credp != NULL) { in dblk_lastfree_oversize()
790 crfree(dbp->db_credp); in dblk_lastfree_oversize()
791 dbp->db_credp = NULL; in dblk_lastfree_oversize()
793 dbp->db_cpid = -1; in dblk_lastfree_oversize()
794 dbp->db_struioflag = 0; in dblk_lastfree_oversize()
795 dbp->db_struioun.cksum.flags = 0; in dblk_lastfree_oversize()
797 kmem_free(dbp->db_base, dbp->db_lim - dbp->db_base); in dblk_lastfree_oversize()
798 kmem_cache_free(dbp->db_cache, dbp); in dblk_lastfree_oversize()
844 dblk_t *dbp; in allocb_wait() local
861 dbp = kmem_cache_alloc(dblk_cache[index], KM_SLEEP); in allocb_wait()
862 mp = dbp->db_mblk; in allocb_wait()
863 DBLK_RTFU_WORD(dbp) = DBLK_RTFU(1, M_DATA, 0, 0); in allocb_wait()
865 mp->b_rptr = mp->b_wptr = dbp->db_base; in allocb_wait()
1127 dblk_t *dbp; in pullupmsg() local
1165 dbp = bp->b_datap; in pullupmsg()
1167 mp->b_datap = dbp; /* ... and mp heads the new message */ in pullupmsg()
1170 mp->b_rptr = mp->b_wptr = dbp->db_base; in pullupmsg()