Lines Matching defs:dbp
94 * dblk's free method, dbp->db_free(), which is set at allocation time.
146 #define DBLK_RTFU_WORD(dbp) (*((uint32_t *)&(dbp)->db_ref))
168 static void dblk_lastfree(mblk_t *mp, dblk_t *dbp);
173 static void bcache_dblk_lastfree(mblk_t *mp, dblk_t *dbp);
187 dblk_t *dbp = buf;
197 if ((dbp->db_mblk = kmem_cache_alloc(mblk_cache, kmflags)) == NULL)
200 dbp->db_base = kmem_alloc(msg_size, kmflags);
201 if (dbp->db_base == NULL) {
202 kmem_cache_free(mblk_cache, dbp->db_mblk);
206 dbp->db_base = (unsigned char *)&dbp[1];
209 dbp->db_mblk->b_datap = dbp;
210 dbp->db_cache = dblk_cache[index];
211 dbp->db_lim = dbp->db_base + msg_size;
212 dbp->db_free = dbp->db_lastfree = dblk_lastfree;
213 dbp->db_frtnp = NULL;
214 dbp->db_fthdr = NULL;
215 dbp->db_credp = NULL;
216 dbp->db_cpid = -1;
217 dbp->db_struioflag = 0;
218 dbp->db_struioun.cksum.flags = 0;
226 dblk_t *dbp = buf;
228 if ((dbp->db_mblk = kmem_cache_alloc(mblk_cache, kmflags)) == NULL)
230 dbp->db_mblk->b_datap = dbp;
231 dbp->db_cache = dblk_esb_cache;
232 dbp->db_fthdr = NULL;
233 dbp->db_credp = NULL;
234 dbp->db_cpid = -1;
235 dbp->db_struioflag = 0;
236 dbp->db_struioun.cksum.flags = 0;
243 dblk_t *dbp = buf;
246 if ((dbp->db_mblk = kmem_cache_alloc(mblk_cache, kmflags)) == NULL)
249 dbp->db_base = kmem_cache_alloc(bcp->buffer_cache, kmflags);
250 if (dbp->db_base == NULL) {
251 kmem_cache_free(mblk_cache, dbp->db_mblk);
255 dbp->db_mblk->b_datap = dbp;
256 dbp->db_cache = (void *)bcp;
257 dbp->db_lim = dbp->db_base + bcp->size;
258 dbp->db_free = dbp->db_lastfree = bcache_dblk_lastfree;
259 dbp->db_frtnp = NULL;
260 dbp->db_fthdr = NULL;
261 dbp->db_credp = NULL;
262 dbp->db_cpid = -1;
263 dbp->db_struioflag = 0;
264 dbp->db_struioun.cksum.flags = 0;
272 dblk_t *dbp = buf;
275 ASSERT(dbp->db_mblk->b_datap == dbp);
277 ASSERT(dbp->db_struioflag == 0);
278 ASSERT(dbp->db_struioun.cksum.flags == 0);
281 kmem_free(dbp->db_base, msg_size);
284 kmem_cache_free(mblk_cache, dbp->db_mblk);
290 dblk_t *dbp = buf;
293 kmem_cache_free(bcp->buffer_cache, dbp->db_base);
295 ASSERT(dbp->db_mblk->b_datap == dbp);
296 ASSERT(dbp->db_struioflag == 0);
297 ASSERT(dbp->db_struioun.cksum.flags == 0);
299 kmem_cache_free(mblk_cache, dbp->db_mblk);
418 dblk_t *dbp;
432 if ((dbp = kmem_cache_alloc(dblk_cache[index], KM_NOSLEEP)) == NULL) {
437 mp = dbp->db_mblk;
438 DBLK_RTFU_WORD(dbp) = DBLK_RTFU(1, M_DATA, 0, 0);
440 mp->b_rptr = mp->b_wptr = dbp->db_base;
443 STR_FTALLOC(&dbp->db_fthdr, FTEV_ALLOCB, size);
481 dblk_t *dbp = mp->b_datap;
483 crhold(dbp->db_credp = cr);
484 dbp->db_cpid = cpid;
496 dblk_t *dbp = mp->b_datap;
498 crhold(dbp->db_credp = cr);
499 dbp->db_cpid = cpid;
519 dblk_t *dbp = mp->b_datap;
521 cr = dbp->db_credp;
527 *cpidp = dbp->db_cpid;
581 dblk_t *dbp = mp->b_datap;
583 cr = dbp->db_credp;
588 ASSERT(dbp->db_ref == 1);
589 dbp->db_credp = NULL;
591 *cpidp = dbp->db_cpid;
641 dblk_t *dbp = mp->b_datap;
643 ASSERT(dbp->db_ref > 0);
647 STR_FTEVENT_MBLK(mp, caller(), FTEV_FREEB, dbp->db_ref);
649 dbp->db_free(mp, dbp);
657 dblk_t *dbp = mp->b_datap;
660 ASSERT(dbp->db_ref > 0);
663 STR_FTEVENT_MBLK(mp, caller(), FTEV_FREEB, dbp->db_ref);
665 dbp->db_free(mp, dbp);
721 dblk_lastfree(mblk_t *mp, dblk_t *dbp)
723 ASSERT(dbp->db_mblk == mp);
724 if (dbp->db_fthdr != NULL)
725 str_ftfree(dbp);
728 if (dbp->db_credp != NULL) {
729 crfree(dbp->db_credp);
730 dbp->db_credp = NULL;
732 dbp->db_cpid = -1;
735 dbp->db_struioflag = 0;
736 dbp->db_struioun.cksum.flags = 0;
739 dbp->db_flags &= ~(DBLK_COOKED | DBLK_UIOA);
741 kmem_cache_free(dbp->db_cache, dbp);
745 dblk_decref(mblk_t *mp, dblk_t *dbp)
747 if (dbp->db_ref != 1) {
748 uint32_t rtfu = atomic_add_32_nv(&DBLK_RTFU_WORD(dbp),
764 dbp->db_mblk = mp;
765 dbp->db_free = dbp->db_lastfree;
766 dbp->db_lastfree(mp, dbp);
772 dblk_t *dbp = mp->b_datap;
782 new_mp->b_datap = dbp;
786 STR_FTEVENT_MBLK(mp, caller(), FTEV_DUPB, dbp->db_ref);
788 dbp->db_free = dblk_decref;
790 ASSERT(dbp->db_ref > 0);
791 oldrtfu = DBLK_RTFU_WORD(dbp);
801 } while (atomic_cas_32(&DBLK_RTFU_WORD(dbp), oldrtfu, newrtfu) !=
810 dblk_lastfree_desb(mblk_t *mp, dblk_t *dbp)
812 frtn_t *frp = dbp->db_frtnp;
814 ASSERT(dbp->db_mblk == mp);
816 if (dbp->db_fthdr != NULL)
817 str_ftfree(dbp);
820 if (dbp->db_credp != NULL) {
821 crfree(dbp->db_credp);
822 dbp->db_credp = NULL;
824 dbp->db_cpid = -1;
825 dbp->db_struioflag = 0;
826 dbp->db_struioun.cksum.flags = 0;
828 kmem_cache_free(dbp->db_cache, dbp);
844 dblk_t *dbp;
849 if ((dbp = kmem_cache_alloc(dblk_esb_cache, kmflags)) == NULL) {
854 mp = dbp->db_mblk;
855 dbp->db_base = base;
856 dbp->db_lim = base + size;
857 dbp->db_free = dbp->db_lastfree = lastfree;
858 dbp->db_frtnp = frp;
859 DBLK_RTFU_WORD(dbp) = db_rtfu;
993 bcache_dblk_lastfree(mblk_t *mp, dblk_t *dbp)
995 bcache_t *bcp = dbp->db_cache;
997 ASSERT(dbp->db_mblk == mp);
998 if (dbp->db_fthdr != NULL)
999 str_ftfree(dbp);
1002 if (dbp->db_credp != NULL) {
1003 crfree(dbp->db_credp);
1004 dbp->db_credp = NULL;
1006 dbp->db_cpid = -1;
1007 dbp->db_struioflag = 0;
1008 dbp->db_struioun.cksum.flags = 0;
1011 kmem_cache_free(bcp->dblk_cache, dbp);
1076 dblk_t *dbp;
1087 if ((dbp = kmem_cache_alloc(bcp->dblk_cache, KM_NOSLEEP)) == NULL) {
1094 ASSERT(((uintptr_t)(dbp->db_base) & (bcp->align - 1)) == 0);
1096 mp = dbp->db_mblk;
1097 DBLK_RTFU_WORD(dbp) = DBLK_RTFU(1, M_DATA, 0, 0);
1099 mp->b_rptr = mp->b_wptr = dbp->db_base;
1102 STR_FTALLOC(&dbp->db_fthdr, FTEV_BCALLOCB, bcp->size);
1110 dblk_lastfree_oversize(mblk_t *mp, dblk_t *dbp)
1112 ASSERT(dbp->db_mblk == mp);
1113 if (dbp->db_fthdr != NULL)
1114 str_ftfree(dbp);
1117 if (dbp->db_credp != NULL) {
1118 crfree(dbp->db_credp);
1119 dbp->db_credp = NULL;
1121 dbp->db_cpid = -1;
1122 dbp->db_struioflag = 0;
1123 dbp->db_struioun.cksum.flags = 0;
1125 kmem_free(dbp->db_base, dbp->db_lim - dbp->db_base);
1126 kmem_cache_free(dbp->db_cache, dbp);
1172 dblk_t *dbp;
1189 dbp = kmem_cache_alloc(dblk_cache[index], KM_SLEEP);
1190 mp = dbp->db_mblk;
1191 DBLK_RTFU_WORD(dbp) = DBLK_RTFU(1, M_DATA, 0, 0);
1193 mp->b_rptr = mp->b_wptr = dbp->db_base;
1560 dblk_t *dbp;
1598 dbp = bp->b_datap;
1600 mp->b_datap = dbp; /* ... and mp heads the new message */
1603 mp->b_rptr = mp->b_wptr = dbp->db_base;
3619 dblk_t *dbp;
3647 dbp = mp->b_datap;
3648 ptr = (uchar_t *)(mp->b_rptr + dbp->db_cksumstuff);
3649 uiocnt = dbp->db_cksumend - dbp->db_cksumstuff;
3651 if (!(dbp->db_struioflag & STRUIO_SPEC) ||
3652 (dbp->db_struioflag & STRUIO_DONE) || cnt == 0) {
3681 dbp->db_struioflag |= STRUIO_DONE;
3682 dbp->db_cksumstuff += cnt;
3693 uiocnt = dbp->db_cksumend - dbp->db_cksumstuff;
3695 dbp->db_cksumstuff += resid;
4321 str_ftfree(dblk_t *dbp)
4323 fthdr_t *hp = dbp->db_fthdr;
4344 dbp->db_fthdr = NULL;