Lines Matching defs:pd

328 	pdesc_t *pd;
342 pd = Q2PD(mmd->mmd_pd_q.ql_next);
343 while (pd != Q2PD(&(mmd->mmd_pd_q)))
344 pd = mmd_destroy_pdesc(mmd, pd);
411 pdesc_t *pd;
480 pd = mmd_getpdesc(mmd, NULL, NULL, 1, B_TRUE); /* first pdesc */
481 while (pd != NULL) {
488 pd_next = mmd_getpdesc(pd->pd_slab->pds_mmd, pd, NULL,
492 if (pd->pd_flags & PDESC_REM_DEFER) {
493 pd = pd_next;
497 pdi = &(pd->pd_pdi);
547 if (n_pd == NULL || (pd->pd_pattbl != NULL &&
548 mmd_copy_pattbl(pd->pd_pattbl, n_mmd, n_pd, kmflags) < 0)) {
554 pd = pd_next;
728 pdesc_t *pd;
765 pd = &(slab->pds_free_desc[slab->pds_used++]);
766 ASSERT(pd->pd_magic == PDESC_MAGIC);
767 pd->pd_next = NULL;
768 pd->pd_prev = NULL;
769 pd->pd_slab = slab;
770 pd->pd_pattbl = NULL;
773 PDI_COPY(pdi, &(pd->pd_pdi));
775 if (pd->pd_flags & PDESC_HBUF_REF)
777 if (pd->pd_flags & PDESC_PBUF_REF)
778 mmd->mmd_pbuf_ref += pd->pd_pdi.pld_cnt;
782 insque(&(pd->pd_next), mmd->mmd_pd_q.ql_prev);
785 return (pd);
809 pdesc_t *pd = &(slab->pds_free_desc[i]);
810 pd->pd_magic = PDESC_MAGIC;
837 mmd_destroy_pdesc(multidata_t *mmd, pdesc_t *pd)
841 pd_next = Q2PD(pd->pd_next);
842 remque(&(pd->pd_next));
845 if (pd->pd_pattbl != NULL)
846 mmd_destroy_pattbl(&(pd->pd_pattbl));
849 if (!(pd->pd_flags & PDESC_REM_DEFER)) {
850 if (pd->pd_flags & PDESC_HBUF_REF) {
854 if (pd->pd_flags & PDESC_PBUF_REF) {
856 mmd->mmd_pbuf_ref -= pd->pd_pdi.pld_cnt;
868 mmd_rempdesc(pdesc_t *pd)
872 ASSERT(pd->pd_magic == PDESC_MAGIC);
873 ASSERT(pd->pd_slab != NULL);
875 mmd = pd->pd_slab->pds_mmd;
887 pd->pd_flags |= PDESC_REM_DEFER;
888 if (pd->pd_flags & PDESC_HBUF_REF) {
892 if (pd->pd_flags & PDESC_PBUF_REF) {
894 mmd->mmd_pbuf_ref -= pd->pd_pdi.pld_cnt;
899 (void) mmd_destroy_pdesc(mmd, pd);
908 mmd_getpdesc(multidata_t *mmd, pdesc_t *pd, pdescinfo_t *pdi, uint_t forw,
913 ASSERT(pd == NULL || pd->pd_slab->pds_mmd == mmd);
921 if (pd == NULL) {
926 pd = forw ? Q2PD(mmd->mmd_pd_q.ql_next) :
933 pd = forw ? Q2PD(pd->pd_next) : Q2PD(pd->pd_prev);
936 while (pd != pd_head) {
938 if (!(pd->pd_flags & PDESC_REM_DEFER))
940 pd = forw ? Q2PD(pd->pd_next) : Q2PD(pd->pd_prev);
946 if (pd == pd_head)
947 pd = NULL;
950 if (pd != NULL && pdi != NULL)
951 PDI_COPY(&(pd->pd_pdi), pdi);
953 ASSERT(pd == NULL || pd->pd_magic == PDESC_MAGIC);
954 return (pd);
980 mmd_getnextpdesc(pdesc_t *pd, pdescinfo_t *pdi)
982 return (mmd_getpdesc(pd->pd_slab->pds_mmd, pd, pdi, 1, B_FALSE));
989 mmd_getprevpdesc(pdesc_t *pd, pdescinfo_t *pdi)
991 return (mmd_getpdesc(pd->pd_slab->pds_mmd, pd, pdi, 0, B_FALSE));
1033 mmd_adjpdesc(pdesc_t *pd, pdescinfo_t *pdi)
1038 ASSERT(pd != NULL);
1040 ASSERT(pd->pd_magic == PDESC_MAGIC);
1042 mmd = pd->pd_slab->pds_mmd;
1046 if (pd->pd_flags & PDESC_REM_DEFER)
1060 c_pdi = &(pd->pd_pdi);
1067 return (pd);
1077 mmd_transform(pdesc_t *pd)
1085 ASSERT(pd != NULL);
1086 ASSERT(pd->pd_magic == PDESC_MAGIC);
1088 mmd = pd->pd_slab->pds_mmd;
1092 if (pd->pd_flags & PDESC_REM_DEFER)
1096 pdi = &(pd->pd_pdi);
1137 mmd_transform_link(pdesc_t *pd)
1143 ASSERT(pd != NULL);
1144 ASSERT(pd->pd_magic == PDESC_MAGIC);
1146 mmd = pd->pd_slab->pds_mmd;
1150 if (pd->pd_flags & PDESC_REM_DEFER)
1153 pdi = &(pd->pd_pdi);
1245 mmd_getpdescinfo(pdesc_t *pd, pdescinfo_t *pdi)
1247 ASSERT(pd != NULL);
1248 ASSERT(pd->pd_magic == PDESC_MAGIC);
1249 ASSERT(pd->pd_slab != NULL);
1250 ASSERT(pd->pd_slab->pds_mmd->mmd_magic == MULTIDATA_MAGIC);
1254 if (pd->pd_flags & PDESC_REM_DEFER)
1258 PDI_COPY(&(pd->pd_pdi), pdi);
1268 mmd_addpattr(multidata_t *mmd, pdesc_t *pd, pattrinfo_t *pai,
1279 ASSERT(pd == NULL || pd->pd_magic == PDESC_MAGIC);
1283 tbl_p = pd != NULL ? &(pd->pd_pattbl) : &(mmd->mmd_pattbl);
1523 mmd_getpattr(multidata_t *mmd, pdesc_t *pd, pattrinfo_t *pai)
1533 tbl = pd != NULL ? pd->pd_pattbl : mmd->mmd_pattbl;
1559 pdesc_t *pd;
1582 pd = mmd_getpdesc(mmd, NULL, NULL, 1, B_TRUE);
1583 while (pd != NULL) {
1584 pdi = &pd->pd_pdi;
1587 pd = mmd_getpdesc(mmd, pd, NULL, 1, B_TRUE);